C++ 总体内容(2)
1 设计类,求圆的周长
2 内联函数
2.1 内联函数的引出====>函数宏的缺陷
2.1.1 必须保证运算完整性,加括号
2.1.2 即使加了括号,有些情况依然和你预期结果不符,比如++i
2.1.3 宏函数,也不重视作用域
2.2 内联函数,关键字:inline
2.3 函数声明和实现必须同时加上inline,才算内联函数的
2.4 类内部成员函数,默认加上inline关键字
2.5 内联函数和编译器的关系
2.5.1 加入内联关键字后,知识对编译器的一个建议,有些情况下编译器依然不会按照内联方式处理函数
2.5.2 循环,判断,函数体过于庞大,对函数取地址,不会按照内联处理
2.5.3 一个好的编译器,会将短小的函数,隐藏的加入inline关键字
3 函数的默认参数以及占位参数
3.1 默认参数
3.1.1 在形参后面 = 默认值
3.1.2 如果参数列表中,有一位置有了默认参数,那么从这个位置起从左到右都必须有默认参数
3.1.3 函数的声明和实现,只能有一个有默认参数
3.2 占位参数 ==== 会在符号重载的时候用到
3.2.1 函数参数列表中(int)只写类型,调用必须要传入参数调用
3.2.2 占位参数也可以有默认参数(int = 0)
4 函数重载
4.1 重载需要的条件
4.1.1 同一个作用域,函数名称相同,函数参数的类型 或 个数 或 顺序不同
4.2 函数的返回值,不可以作为函数重载的条件
4.3 引用 加入 const 和 不加 const 也可以作为重载条件
4.4 函数重载碰到函数默认参数 也需要注意避免二义性